<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>
      engine/design/task/ONLINE_Update – PlaygroundOSS
    </title>
        <link rel="stylesheet" href="assets/trac.css" type="text/css"><link rel="stylesheet" href="assets/wiki.css" type="text/css">
    <script type="text/javascript" src="assets/jquery.js"></script><script type="text/javascript" src="assets/trac.js"></script><script type="text/javascript" src="assets/search.js"></script>
    <script type="text/javascript">
      jQuery(document).ready(function($) {
        $("#content").find("h1,h2,h3,h4,h5,h6").addAnchor("このセクションへのリンク");
      });
    </script>
  </head>
  <body>
    <div id="main">
    <div id="content" class="wiki">
      <p class="path noprint">
        <br style="clear: both">
      </p>
      <div class="wikipage searchable">
        
          <h2 id="ONLINE_Update">ONLINE_Update<a title="このセクションへのリンク" href="#ONLINE_Update" class="anchor"> ¶</a></h2>
<pre class="wiki">   &lt;task pointer&gt; = ONLINE_Update( "&lt;zip-url&gt;", "&lt;zip-size&gt;", "&lt;tmp-filename&gt;",
                                   "&lt;callback-download&gt;", "&lt;callback-unzip&gt;", "&lt;callback-finish&gt;" )

   function &lt;callback-download&gt;(&lt;task-pointer&gt;, &lt;progress&gt;, &lt;download-size&gt;)
     -- &lt;task-pointer&gt;  呼び出した ONLINE_Update タスクのポインタ
     -- &lt;progress&gt;      &lt;zip-size&gt;から計算されたダウンロードの進捗比。0.0～1.0 までの値
     -- &lt;download-size&gt; ダウンロードされたデータのサイズ
   end

   function &lt;callback-unzip&gt;(&lt;task-pointer&gt;, &lt;finished-files&gt;, &lt;total-files&gt;)
     -- &lt;task-pointer&gt;   呼び出した ONLINE_Update タスクのポインタ
     -- &lt;finished-files&gt; 展開が終了した.zip中エントリの数
     -- &lt;total-files&gt;    現在展開中の .zip に含まれるエントリの総数
   end

   function &lt;callback-finish&gt;(&lt;task-pointer&gt;)
     -- &lt;task-pointer&gt;   呼び出した ONLINE_Update タスクのポインタ
   end
</pre><h3 id="引数">引数<a title="このセクションへのリンク" href="#%E5%BC%95%E6%95%B0" class="anchor"> ¶</a></h3>
<ul><li>&lt;zip-url&gt; .zip ファイルを取得するURL(例: "<a class="ext-link" href="http://servername.net/path/update.zip"><span class="icon">&nbsp;</span>http://servername.net/path/update.zip</a>")
</li><li>&lt;zip-size&gt; あらかじめ判明している .zip ファイルのサイズ。巨大なファイルサイズのときに誤差が出ないよう文字列で与える(例: "456782")
</li><li>&lt;tmp-filename&gt; .zip をダウンロードするテンポラリファイル名。明示的に "<a class="ext-link" href="file:///"><span class="icon">&nbsp;</span>file://external/</a>" 以下であることが指定されたパス名でなければならない。(例:"file://external/update.zip")。また、ダウンロード時に対応するパスが生成されているとは限らないため、事実上 <a class="ext-link" href="file:///"><span class="icon">&nbsp;</span>file://external/</a> 直下でなければならない。
</li><li>&lt;callback-download&gt;  ダウンロード中の進捗を通知するコールバック関数名
</li><li>&lt;callback-unzip&gt; .zip 展開中の進捗を通知するコールバック関数名
</li><li>&lt;callback-finish&gt; 処理終了を通知するコールバック関数名
</li></ul><h3 id="戻り値">戻り値<a title="このセクションへのリンク" href="#%E6%88%BB%E3%82%8A%E5%80%A4" class="anchor"> ¶</a></h3>
<ul><li>&lt;task pointer&gt; 生成された ONLINE_Update タスクのポインタ
</li></ul><h3 id="解説">解説<a title="このセクションへのリンク" href="#%E8%A7%A3%E8%AA%AC" class="anchor"> ¶</a></h3>
<p>
URLで指定された .zip ファイルをダウンロードし、終了後 <a class="ext-link" href="file:///"><span class="icon">&nbsp;</span>file://external/</a> 相当のパス以下に展開する。
その際、.zip ファイル中にディレクトリではなくファイルとしてサイズが0のものについては、当該パスに一致するファイルを削除する動作をする。
</p>
<p>
ダウンロード、zip展開それぞれのフェーズにおける進捗はコールバックで取得することができる。
また、ダウンロードや個々のzipエントリ展開は別スレッドで行われるため、フレーム処理をブロックしない。
</p>
<p>
zip展開フェーズが終了すると終了通知コールバックを呼び出し、<strong>そのフレームを最後に自動破棄される</strong>。
</p>
<h3 id="コマンド">コマンド<a title="このセクションへのリンク" href="#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89" class="anchor"> ¶</a></h3>
<p>
(コマンドなし)
</p>

        
        
      </div>
    </div>
    </div>
    <div id="footer" xml:lang="en" lang="en"><hr>
      <a id="tracpowered" href="http://trac.edgewall.org/"><img src="assets/trac_logo_mini.png" alt="Trac Powered" height="30" width="107"></a>
      <p class="left">
        By <a href="http://www.edgewall.org/">Edgewall Software</a>.
        <br>Translated by <a href="http://www.i-act.co.jp/">インタアクト株式会社</a>
      </p>
      <p class="right">Visit the Trac open source project at<br><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a></p>
    </div>
  
</body></html>
